#include <stdio.h>

// 这个冒泡排序还只是初级冒泡排序,在之后的课程里面了解了qsort库函数,冒泡函数的类型更高端
// 不管怎么样,该冒泡函数的时间复杂度为 O(n^2)

typedef int data_type ; // 将数据类型转换名字,可以实现类型的转换

void Bubble_sort (data_type* pa , int sz)
{

    for (int j = 0 ; j < sz ; j++)
    {

        int flag = 0 ;

        for (int k = 0 ; k < j - 1 ; k++) // 两个循环保证函数排序完全
        {

            int tmp = 0 ;

            if (pa [k] > pa [k + 1]) // 大小判断,符合就交换
            {

                tmp = pa [k] ;

                pa [k] = pa [k + 1] ;

                pa [k + 1] = tmp ;

                flag = 1 ;

            }

            if (flag == 0) // 设一个flag,如果数组有序就不用排序
            {

                break ;

            }

        }

    }
    
}

int main ()
{

    int array [10] ;

    size_t sz = sizeof (array) / sizeof (array [0]) ; 

    for (int i = 0 ; i < sz ; i++)
    {

        scanf ("%d" , &array [i]) ;

    }

    Bubble_sort (array , sz) ;

    for (int i = 0 ; i < sz ; i++)
    {

        printf ("%d " , array [i]) ;

    }

    return 0 ;

}